home *** CD-ROM | disk | FTP | other *** search
Text File | 1993-06-28 | 7.8 KB | 266 lines | [TEXT/MPS ] |
- // ------------------- create queue stuff -------------------------
- #if 0
- pstrcpy((Ptr)&myExtn.u.queue.queueName,"\pTest Queue");
- dss.extensionSize = (myExtn.u.queue.queueName[0] + 1) + sizeof(OSType);
- OCECopyRString(&newQueueNameToTest,dss.entitySpecifier->local.recordName,kRStringMaxBytes);
-
-
- DebugStr("\pcheck CreateQueue dss struct");
- IPMpb.createQueuePB.queue = &dss;
- IPMpb.createQueuePB.identity = gIdentity;
-
-
- gotAddress = AddressOMini(&packedReply2,gTypesList/*typeList*/,1/*numTypes*/,gIdentity,
- kEnumAllMask,"\pSelect Owner");
-
- // HSetState((Handle)catTypes,hState);
- if (gotAddress==false)
- return kUserCancelled;
-
- if (packedReply2)
- {
- OCEUnpackDSSpec(packedReply2,&dss2,&zzz);
-
- OCENewRecordID(zzz.rli,&zzz.local,&testRecID);
- ridSize = OCEPackedRecordIDSize(&zzz);
- testPckRecID = (PackedRecordIDPtr)NewPtr(ridSize);
- if (testPckRecID == nil)
- DebugStr("\pgot nil pointer");
- err = OCEPackRecordID(&zzz,testPckRecID,ridSize);
- if (err != noErr)
- DebugStr("\perr on OCEPackRecordID");
-
- IPMpb.createQueuePB.owner = testPckRecID;
- err = IPMCreateQueue(&IPMpb,false);
- if (err != noErr)
- DebugStr("\perr on IPMCreateQueue");
- }
- DisposePtr((Ptr)testPckRecID);
- #endif
-
- // ------------------- open server queue --------------------------
-
- IPMpb.openContextPB.ioCompletion = nil;
- err = IPMOpenContext(&IPMpb,false);
- if (err != noErr)
- DebugStr("\perr on IPMOpenContext");
- else
- cRef = IPMpb.openContextPB.contextRef;
-
-
-
- IPMpb.openQueuePB.ioCompletion = nil;
- IPMpb.openQueuePB.contextRef = cRef;
-
- DebugStr("\pcheck recepient struct");
- IPMpb.openQueuePB.queue = &dss;
- Debugger();
-
- IPMpb.openQueuePB.identity = gIdentity;
- IPMpb.openQueuePB.filter = nil;
-
- err = IPMOpenQueue(&IPMpb,false);
- if (err != noErr)
- DebugStr("\perr on IPMOpenQueue");
-
- err = IPMCloseQueue(&IPMpb,false);
- if (err != noErr)
- DebugStr("\perr on IPMCloseQueue");
-
- // --------------------------------------------------------------
-
-
-
-
-
-
-
-
-
-
-
-
-
- OSErr GetServerQueue(OCEPackedRecipient **pmPackedRecipient)
- {
- PackedDSSpecPtr packedReply,packedReply2;
- OSErr err;
- // RString addressCategory;
- unsigned short numTypes;
- PackedRStringListHandle catTypes = nil;
- unsigned char hState;
- OCERecipient *ipmRecipient;
- unsigned long newXtnLength,recipLength;
- SMPRecipientDescriptorPtr recipList,freeRecip;
- Boolean gotAddress;
- AttributeType *attrType;
-
-
- #if 0
- // -------------------- code that gets the PrefMessageQ from user record ---------------------------
- gotAddress = AddressOMini(&packedReply,gTypesList/*typeList*/,1/*numTypes*/,gIdentity,
- kEnumAllMask,"\pIdentify Server:");
-
- // HSetState((Handle)catTypes,hState);
- if (gotAddress==false)
- return kUserCancelled;
-
- if (packedReply)
- {
- OCEUnpackDSSpec(packedReply,&dss,&rid);
-
- //Debugger();
- // err = GetAttributeFromRID (&rid, OCEGetIndAttributeType (kPrefMsgQAttrTypeNum),
- // &theAttribute, gIdentity);
- // aptr = theAttribute;
-
- attrType = OCEGetIndAttributeType (kPrefMsgQAttrTypeNum);
- dss.extensionType = kOCEentnXtn; // 'entn'
- myExtn2.subExtensionType = kOCEAttrXtn; // 'attr'
- OCECopyRString((RStringPtr)attrType,(RStringPtr)&myExtn2.u.attribute.attributeName,kAttributeTypeMaxBytes);
- // ################# why wont sizeof(RStringHeader) work!!!!!!!!!!!!!!!
- dss.extensionSize = sizeof(dummy) + attrType->dataLength + sizeof(OSType);
- dss.extensionValue = (Ptr)&myExtn2;
-
- recipLength = OCEPackedDSSpecSize(&dss);
- *pmPackedRecipient = NewPtrChk(recipLength);
- if ((err=MemError())==noErr)
- OCEPackDSSpec(&dss,(PackedDSSpec *)*pmPackedRecipient,recipLength);
-
- DisposPtr((Ptr)packedReply);
-
- }
- return err;
- #endif
-
-
-
-
- // -------------------- code for when you select the server record--------------------------
-
- #if 0
- // OCECToRString(/*kDETCategoryAllItems*/kDETCategoryAllCategories,smRoman,&allCategories,kRStringMaxBytes);
- err = SDPGetCategoryTypes(&allCategories,&catTypes);
- if (err!=noErr)
- return err;
- // hState = HGetState((Handle)catTypes);
- // HLock((Handle)catTypes);
-
- // how many are there?
- nParts = OCEDNodeNameCount(*catTypes);
-
- numTypes = OCEUnpackPathName(*catTypes,typeList,nParts);
- #endif
- gotAddress = AddressOMini(&packedReply,gTypesList/*typeList*/,1/*numTypes*/,gIdentity,
- kEnumAllMask,"\pIdentify Server:");
-
- // HSetState((Handle)catTypes,hState);
- if (gotAddress==false)
- return kUserCancelled;
-
- if (packedReply)
- {
-
-
- // -------------------- code for when you select the server record--------------------------
- OCEUnpackDSSpec(packedReply,&dss,&rid);
- dss.extensionType = kOCEentnXtn; // 'entn'
- // check if record type is 'AppleMail M&M'
- if (OCEEqualRString(rid.local.recordType,OCEGetIndRecordType(kMnMRecTypeNum),OCEGetDSSpecInfo(&dss)/*kOCERecordType*/) != true)
- {
- DebugStr("\precord types not equal");
- return false; // ???????????????
- }
-
- myExtn.subExtensionType = kOCEQnamXtn; // 'qnam'
- OCECopyRString(rid.local.recordName,&tempRStr,kRStringMaxBytes);
- pstrcpy((Ptr)&myExtn.u.queue.queueName,OCERToPString(&tempRStr));
-
- dss.extensionSize = (myExtn.u.queue.queueName[0] + 1) + sizeof(OSType);
- dss.extensionValue = (Ptr)&myExtn;
-
-
-
- recipLength = OCEPackedDSSpecSize(&dss);
- *pmPackedRecipient = NewPtrChk(recipLength);
- if ((err=MemError())==noErr)
- OCEPackDSSpec(&dss,(PackedDSSpec *)*pmPackedRecipient,recipLength);
-
- DisposPtr((Ptr)packedReply);
-
- }
-
- return err;
-
- }
-
-
-
-
-
-
-
-
-
-
- OSErr GetAttributeTypesFromRID (RecordIDPtr rid, AuthIdentity identity)
- {
- OSErr err;
- DirParamBlock pb;
- ParseInfo parseInfo;
-
- parseInfo.rid = rid;
- parseInfo.identity = identity;
- pb.enumerateAttributeTypesGetPB.ioCompletion = nil;
- pb.enumerateAttributeTypesGetPB.serverHint.aNet = NULL;
- pb.enumerateAttributeTypesGetPB.serverHint.aNode = NULL;
- pb.enumerateAttributeTypesGetPB.serverHint.aSocket = NULL;
- pb.enumerateAttributeTypesGetPB.dsRefNum = 0;
- pb.enumerateAttributeTypesGetPB.identity = identity;
- pb.enumerateAttributeTypesGetPB.clientData = 0L;
- pb.enumerateAttributeTypesGetPB.aRecord = rid;
- pb.enumerateAttributeTypesGetPB.includeStartingPoint = TRUE;
- pb.enumerateAttributeTypesGetPB.getBuffer = NewPtr (kBufSize);
- if ((err = MemError()) != noErr)
- return err;
- pb.enumerateAttributeTypesGetPB.getBufferSize = kBufSize;
- pb.enumerateAttributeTypesGetPB.startingAttrType = NULL;
- if ((err = DirEnumerateAttributeTypesGet (&pb, FALSE)) == noErr)
- {
- pb.enumerateAttributeTypesParsePB.ioCompletion = nil;
- pb.enumerateAttributeTypesParsePB.serverHint.aNet = NULL;
- pb.enumerateAttributeTypesParsePB.serverHint.aNode = NULL;
- pb.enumerateAttributeTypesParsePB.serverHint.aSocket = NULL;
- pb.enumerateAttributeTypesParsePB.dsRefNum = 0;
- pb.enumerateAttributeTypesParsePB.identity = identity;
- pb.enumerateAttributeTypesParsePB.clientData = (long) &parseInfo;
- pb.enumerateAttributeTypesParsePB.aRecord = rid;
- pb.enumerateAttributeTypesParsePB.eachAttrType = myForEachAttrTypeEnumerate;
- pb.enumerateAttributeTypesParsePB.getBuffer = pb.enumerateAttributeTypesGetPB.getBuffer;
- pb.enumerateAttributeTypesParsePB.getBufferSize = pb.enumerateAttributeTypesGetPB.getBufferSize;
- err = DirEnumerateAttributeTypesParse (&pb, FALSE);
- }
-
- if (pb.enumerateAttributeTypesGetPB.getBuffer != nil)
- DisposePtr (pb.enumerateAttributeTypesGetPB.getBuffer);
-
- return (err);
- }
-
- static pascal Boolean myForEachAttrTypeEnumerate (long clientData,
- const AttributeType *attrType/*const AttributeTypePtr attrType*/)
- {
- OSErr err;
- ParseInfo *parseInfo;
- AttributePtr theAttribute;
-
- parseInfo = (ParseInfo *) clientData;
- err = GetAttributeFromRID ((*parseInfo).rid, (AttributeTypePtr)attrType, &theAttribute,
- (*parseInfo).identity);
-
- if (err == noErr)
- DisposePtr ((Ptr)theAttribute);
-
- return (FALSE);
- }
-